package com.autumn.sms;

/**
 * 短信通道
 * 
 * @author 杨昌国 2018-12-07 10:16:28
 */
public interface SmsChannel {

	/**
	 * 获取通道代码
	 * 
	 * @return
	 */
	String getChannelCode();

	/**
	 * 获取通道名称
	 * 
	 * @return
	 */
	String getChannelName();

	/**
	 * 获取通道监听
	 * 
	 * @return
	 */
	SmsChannelListen getChannelListen();

	/**
	 * 设置通道监听
	 * 
	 * @param channelListen 通道监听
	 */
	void setChannelListen(SmsChannelListen channelListen);

	/**
	 * 采用默认通道配置发送短信
	 * 
	 * @param message 短信消息
	 */
	void send(SmsMessage message) throws Exception;

	/**
	 * 发送短信，如果未指定通道配置则采用默认配置
	 * 
	 * @param message          短信消息
	 * @param channelConfigure 通道配置
	 */
	void send(SmsMessage message, SmsChannelConfigure channelConfigure) throws Exception;
}
